home *** CD-ROM | disk | FTP | other *** search
/ SGI Enlighten DSM 1.1 / SGI EnlightenDSM 1.1.iso / sco5x / emd / bin / start_emdd < prev    next >
Text File  |  1998-07-01  |  4KB  |  172 lines

  1. #!/bin/sh
  2. #
  3. # Script: start_emdd [-v logLevel(0-4)]
  4. #
  5. # start_emdd starts the EMD component of EnlightenDSM
  6. #
  7. # Copyright (c) 1990-1998 Enlighten Software Solutions, Inc.
  8. # All Rights Reserved.
  9. #
  10. # (ksh was used to bypass a variable bug in SCO3's sh. This script
  11. #  is /bin/sh compatible.)
  12. #
  13.  
  14. STARTUP_SECS=10
  15. SHUTDOWN_SECS=10
  16. DEFAULT_LOG_LEVEL=0
  17.  
  18. PATH=/bin:/usr/bin:/etc:/usr/ucb:/usr/bsd:/usr/etc:$PATH
  19. export PATH
  20.  
  21. appName=`basename $0` ; export $appName
  22.  
  23. errorCheck () {
  24.     if [ $? -ne 0 ] ; then
  25.         echo "$appName: Fatal: Could not start EMD." 1>&2
  26.         exit 1
  27.     fi
  28. }
  29.  
  30. logLevel=$DEFAULT_LOG_LEVEL
  31.  
  32. while [ "$#" -ne 0 ] ; do
  33.     case "$1" in
  34.         -v* )
  35.             logLevel=$2
  36.             shift
  37.             ;;
  38.         *)
  39.             echo
  40.             echo "$appName starts the EMD component of EnlightenDSM."
  41.             echo
  42.             echo "Usage: $appName [-v <verbosity level (0-4)>]"
  43.             echo
  44.             exit 1
  45.             ;;
  46.     esac
  47.     shift
  48. done
  49.  
  50.  
  51. OS=`uname -s` ; export OS
  52. REV=`uname -r` ; export REV
  53.  
  54. #
  55. # Deal with bsd ps
  56. #
  57.  
  58. OPTS="-ef"
  59. if [ "$OS" = "SunOS" ]; then
  60.     case "$REV" in
  61.         4.1.* )
  62.             OPTS="-axuww"
  63.             ;;
  64.     esac
  65. fi
  66.  
  67. #
  68. # Get a valid key file
  69. #
  70.  
  71. if [ -z "$ENL_KEYS" -o ! -r "$ENL_KEYS" ] ; then
  72.     KEY_FILE=/etc/enlighten
  73. else
  74.     KEY_FILE=$ENL_KEYS
  75. fi
  76.  
  77. if [ ! -r "$KEY_FILE" ] ; then
  78.     echo "$appName: Fatal: Could not read file $KEY_FILE." 1>&2
  79.     echo 1>&2
  80.     if [ -f $KEY_FILE ] ; then
  81.         echo "$appName: Please run $appName as root." 1>&2
  82.         exit 1
  83.     else
  84.         echo "$appName: Reinstall Enlighten on this host." 1>&2
  85.         exit 1
  86.     fi
  87. fi
  88.  
  89. #
  90. # Get EMD_DIR
  91. #
  92.  
  93. EMD_DIR=`egrep "^emd_dir=" $KEY_FILE | cut "-d=" -f2-`
  94. export EMD_DIR
  95.  
  96. if [ ! -x $EMD_DIR/bin/emdd ] ; then 
  97.     echo "$appName: Error: $EMD_DIR/bin/emdd was missing." 1>&2
  98.     echo "$appName: Please check $KEY_FILE's value of 'emd_dir='." 1>&2
  99.     exit 1
  100. fi
  101.  
  102. if [ ! -r $EMD_DIR/.odbc.ini ] ; then 
  103.     echo "$appName: Error: $EMD_DIR/.odbc.ini was missing." 1>&2
  104.     echo "$appName: Please reinstall the EMD." 1>&2
  105.     exit 1
  106. fi
  107.  
  108. OLD_PID=`ps $OPTS | grep emdd | egrep -v "$appName|enl_post_install|grep" \
  109.     | awk '{ print $2; }'`
  110. if [ ! -z "$OLD_PID" ] ; then
  111.     echo "$appName: Killing a previously-started emdd [pid $OLD_PID]"
  112.     kill $OLD_PID
  113.     if [ $? -ne 0 ] ; then
  114.         echo "$appName: Run as user 'root'." 1>&2
  115.         exit $?
  116.     fi
  117.     sleep $SHUTDOWN_SECS
  118.     PIDS_THAT_WOULD_NOT_DIE=`ps $OPTS | egrep -e "emdd|enl_se" \
  119.         | egrep -v "$appName|enl_post_install|grep" | awk '{ print $2; }'`
  120.     if [ ! -z "$PIDS_THAT_WOULD_NOT_DIE" ] ; then
  121.         kill -9 $PIDS_THAT_WOULD_NOT_DIE
  122.         if [ $? -ne 0 ] ; then
  123.             echo "$appName: Run as user 'root'." 1>&2
  124.             exit $?
  125.         fi
  126.     fi
  127. fi
  128.  
  129. #
  130. # set ENLIGHTEN to EMD_DIR for liblog be able to find message files
  131. #
  132. ENLIGHTEN=$EMD_DIR; export ENLIGHTEN
  133.  
  134. echo
  135. echo "$appName: Invoking $EMD_DIR/bin/emdd..."
  136.  
  137. #
  138. # Start the EMD
  139. #
  140.  
  141. #SQLEXEC=$EMD_DIR/informix/lib/sqlexecd; export SQLEXEC        
  142. #DBPATH=$EMD_DIR/dbtables; export DBPATH               
  143. #INFORMIXDIR=$EMD_DIR/informix; export INFORMIXDIR             
  144. #INFORMIXSERVER=enl_se; export INFORMIXSERVER          
  145. #ODBC=$EMD_DIR/odbc/drivers; export ODBC               
  146. #HOME=$EMD_DIR; export HOME                          
  147. #PATH=$EMD_DIR/informix/bin:/bin:$EMD_DIR/bin:/usr/bin:/etc; export PATH
  148. #case "$OS" in
  149. #"HP-UX" )
  150. #SHLIB_PATH=$EMD_DIR/odbc/lib:$EMD_DIR/informix/lib:$SHLIB_PATH
  151. #export SHLIB_PATH
  152. #;;
  153. #* )
  154. #LD_LIBRARY_PATH=$EMD_DIR/odbc/lib:$EMD_DIR/informix/lib:$LD_LIBRARY_PATH
  155. #export LD_LIBRARY_PATH
  156. #;;
  157. #esac
  158.         
  159. cd $EMD_DIR/bin
  160. ./emdd -d -v$logLevel
  161. errorCheck
  162.  
  163. sleep $STARTUP_SECS;
  164.  
  165. PEP_PID=`ps $OPTS | grep emdd | egrep -v "$appName|enl_post_install|grep" `
  166. if [ -z "$PEP_PID" ] ; then
  167.     echo "$appName: Fatal: EMD did not come up." 1>&2
  168.     exit 1
  169. fi
  170.  
  171. exit 0
  172.